Mono类型解析 | 您所在的位置:网站首页 › mono filter › Mono类型解析 |
java8中的Consumer、Function
Consummer接口
Consumer 是消费者接口,被@FunctionalInterface注解修饰,这意味着它可以看做是一个方法,Consumer接口中定义了一个accept方法。 void accept(T t);实现Consumer接口的消费者需要重写accept方法,accept方法就是消费生产者生产出来的对象进行消费。Consumer对象可以这样定义: Consumer c0 = System.out::println; Consumer c1 = x -> System.out.println(x + 1);Consumer对象可以定义某个对象的方法,或者是类的静态方法,这就是代表 在Consummer的accept方法中使用该对象去执行该方法,或者执行这个类的静态方法。也可以用lambda表达式来进行定义。 Function接口Function接口也是被@FunctionalInterface注解修饰修饰的,表示一个方法。Function接口中定义了一个apply方法: R apply(T t);与Consumer接口类似,Function接口的实现类需要实现apply方法,通常Function类型的对象作为参数都会去调用Function对象的apply方法,也就是执行这个Function。Function对象也可以按照Consumer接口一样的方式进行定义: Function f0 = WebfluxTest::aaa;//这里aaa方法必须是有返回值的静态方法 Function f1 = (x) -> x + 1;Function与Consumer的区别就在于,Consumer是没有返回值的,而Function是有返回值的,也因此,如果lambda表达式只有一行,Function中匿名方法中的内容是一个表达式(表示返回的值),而Consumer中匿名方法的内容是一条语句(执行的逻辑)。 Mono和FluxMono和Flux都实现了Publisher接口,也就是发布者,一个Mono对象中最多发射一个信号(可能是一个值,或者空,或者一个error),而Flux可以发射多个信号。 Publisher接口中只定义了一个subscribe方法: public void subscribe(Subscriber |
CopyRight 2018-2019 实验室设备网 版权所有 |